﻿// FisheyeCorrection.cpp : 此文件包含 "main" 函数。程序执行将在此处开始并结束。
//

#include <iostream>
#include <opencv2\opencv.hpp>
#include "Corrections.h"
#include "ScanningMethod.h"

using namespace std;
using namespace cv;

string imgName = "7.jpg";
string imgRoot = "D:\\VS2022\\FisheyeCorrection\\imgs\\";
string saveRoot = "D:\\VS2022\\FisheyeCorrection\\results\\";


int times = 1;


int main()
{
    // input
    string imgPath = imgRoot + imgName;
    Mat img = imread(imgPath);
    //resize(img, img, Size(img.cols * 2, img.rows * 2));
    imshow("win", img);

    // Rect
    Mat imgCircle = ScanningMethod(img);		//返回剪切后的图像


    // correction
    Corrections hCorrections;
    Mat imgCalib, imgCalib2;
    int64 tsart = getTickCount();
    for (int i = 0; i < times; i++)
    {
        //imgCalib = hCorrections.Fix(imgCircle, 5);
        //imgCalib = hCorrections.SPP(imgCircle);
        imgCalib = hCorrections.SPP2(imgCircle);
    }
    cout << "平均耗时" << (getTickCount() - tsart) * 1000 / getTickFrequency() / 100 << "ms" << endl;

    // show
    imshow("imgCalib", imgCalib);
    imwrite("results\\SPP2.jpg", imgCalib);
    waitKey(0);
    
}

// 运行程序: Ctrl + F5 或调试 >“开始执行(不调试)”菜单
// 调试程序: F5 或调试 >“开始调试”菜单

// 入门使用技巧: 
//   1. 使用解决方案资源管理器窗口添加/管理文件
//   2. 使用团队资源管理器窗口连接到源代码管理
//   3. 使用输出窗口查看生成输出和其他消息
//   4. 使用错误列表窗口查看错误
//   5. 转到“项目”>“添加新项”以创建新的代码文件，或转到“项目”>“添加现有项”以将现有代码文件添加到项目
//   6. 将来，若要再次打开此项目，请转到“文件”>“打开”>“项目”并选择 .sln 文件
